Customizing content delivery from a brand page to a user in a social networking environment

ABSTRACT

A social networking system user&#39;s interaction with a brand page may be tailored to match the user&#39;s interests. Content providers or page administrators of a brand page associate keywords with content posted to the brand page. A keyword may define a characteristic of a social networking system user to receive the content or may describe a characteristic of the content. The keywords are compared to a user profile of a user requesting the brand page and content posted to the brand page is selected for presentation to the user based on the user profile and the keywords. For example, content is presented to a user having a characteristic defined by criteria keyword. The selected content posted to the brand page is presented to the user requesting the brand page.

CROSS REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. application Ser. No.13/627,857, filed on Sep. 26, 2012, which claims the benefit of U.S.Provisional Application No. 61/632,428, filed on Jul. 19, 2012, each ofwhich is incorporated by reference in its entirety.

BACKGROUND

Embodiments of the present disclosure relate generally to socialnetworking and, more specifically, to personalized distribution ofcontent items to users of a social networking system.

Social networks, or social utilities that track and enable connectionsbetween users (including people, businesses, and other entities), havebecome prevalent in recent years. In particular, a social networkingsystem allows users to more efficiently communicate information that isrelevant to their friends or other connections in the social network.Social networks typically incorporate a system for maintainingconnections among users in the social network and links to content thatare likely to be relevant to the users. Social networks also collect andmaintain information about the users of the social network. Thisinformation may be static, such as geographic location, employer, jobtype, age, music preferences, interests, and a variety of otherattributes, or it may be dynamic, such as tracking a user's actionswithin the social network. This information can then be used to targetinformation delivery so that information more likely to be of particularinterest to a user can be communicated to that user.

While social networking systems allow people to exchange informationwith each other, they also allow entities to provide information tousers of the social networking system. Examples of entities includebusinesses, organizations and celebrities. An entity may create a brandpage, which is associated with a profile, within the social networkingsystem and post content items to the brand page. The social networkingsystem then communicates the posted content item or a description of theposted content item to social networking system users connected to thebrand page. Hence, the brand page allows the entity to act as any otheruser of the social networking system and disseminate information tosocial networking system users.

However, various types of entities have audiences composed of segments,wherein each segment has a particular interest in the entity. In thesocial networking context, different social networking system users mayhave different levels of interest in different content posted to thebrand page. For example, users connected to a brand page associated witha sporting goods supplier have varying degrees of interest in posts onthe brand page about products for different sports. Conventionally,users connected to a brand page are notified of content posted to thebrand page without accounting for differing levels of interest indifferent content posted to the brand page.

SUMMARY

To better customize interaction between a brand page that is associatedwith an entity and stored on a social networking system, one or moreattributes of content posted to the brand page are used in conjunctionwith characteristics in a social networking system user's user profileto select the content presented to the user when the brand page isaccessed. For example, content posted to the brand page is associatedwith targeting criteria defining at least one characteristic of a userof the social networking system. The targeting criteria are used todirect content to users of the social networking system for whom thecontent posted to the brand page is of particular interest. In oneembodiment, user profiles of social networking system users to whom thebrand page is connected are accessed and used to determine whether aviewing user to whom the brand page is connected has the at least onecharacteristic defined by the targeting criteria. If the viewing user towhom the brand page is connected has the characteristic, the contentposted to the brand page corresponding to the at least onecharacteristic is presented to the viewing user.

As another example, a user's affinity for different content posted tothe brand page by an administrator so that the brand page includescontent for which the user has a threshold affinity or has highestaffinity when viewed by the user. A brand page administrator mayassociate keywords with content posted to the brand page describing thecontent. Based on a user's user profile and/or connections to objects inthe social networking system, the user's affinities for keywordsassociated with different content is determined. Based on theaffinities, content is selected for inclusion on the brand page, so thatthe content is more likely to be of interest to the user.

For example, a page administrator for a brand page associated with asporting goods supplier posts a story about a tennis clinic to the brandpage and associates the story a keyword of “tennis.” A user profile, oran action log, of a social networking system user connected to the brandpage may be accessed and used to determine whether the user has aninterest for “tennis.” For example, the user has an affinity for“tennis” if “tennis” is listed as an interest in the user profile or ifother information associated with the user profile indicates the userhas at least a threshold affinity for “tennis.” If the user has aninterest in “tennis,” the content posted to the brand page associatedwith a keyword of “tennis” is presented to the user. However, if theuser does not have an interest in “tennis,” content posted to the brandpage associated with “tennis” is not presented to the user when thebrand page is accessed. Hence, associating keywords or othercharacteristics with content posted to a brand page allows the brandpage to be customized for different users based on the users' affinityfor the keywords or characteristics.

BRIEF DESCRIPTION OF DRAWINGS

FIG. 1 is an event diagram illustrating a process for selecting contentto provide on a display to a user, in accordance with an embodiment ofthe invention.

FIG. 2 is a network diagram of a system for providing content items tousers of a social networking system, in accordance with an embodiment ofthe invention.

FIG. 3 is a block diagram of a social networking system, in accordancewith an embodiment of the invention.

FIG. 4 is an interaction diagram of a process for selecting contentitems for display, in accordance with an embodiment of the invention.

FIG. 5 is a flow chart of a process for selecting content items, inaccordance with an embodiment of the invention.

FIGS. 6A-6C are illustrations of page views in a social networkingsystem that have been personalized, in accordance with an embodiment ofthe present disclosure.

The figures depict various embodiments of the present invention forpurposes of illustration only. One skilled in the art will readilyrecognize from the following discussion that alternative embodiments ofthe structures and methods illustrated herein may be employed withoutdeparting from the principles of the invention described herein.

DETAILED DESCRIPTION Overview

FIG. 1 shows an example of selecting content posted to a brand page forpresentation to social networking system users. In FIG. 1, a firstcontent item 140 and a second content item 144 are posted to a brandpage 104, which is stored by a social networking system 100. An entitymay generate and maintain the brand page 104 to post information aboutitself, about its products or to provide other information to users ofthe social networking system 100. Examples of content an entity may postto the brand page 104 include: stories about services or productsoffered by the entity, pictures of the entity, pictures of productsand/or services offered by the entity, new product introductions,product sales, stories of products in use, promotional offers forproducts or services, articles and/or reviews describing a product orservice offered by the entity or other suitable information. In FIG. 1,a first content item 140 and a second content item 144 are depicted asposted to the brand page 104. The first content item 140 and the secondcontent item 144 may be presented to social networking users viewing thebrand page 104 in a variety of ways. For example, the content items 140,144 are displayed on the brand page 104, are included in a news feedstory sent to users connected to the brand page 104, are transmitted asone or more messages to users connected to the brand page 104 or aredistributed using any suitable channel.

Social networking system users may connect to the brand page 104 to beupdated when content items are posted to the brand page 104, to receiveupdates about the entity or other suitable information. For example,social networking system users may become friends with the brand page,follow the brand page, become a fan of the brand page or otherwiseestablish a connection with the brand page and/or its associated entityin the social networking system 100. Hence, the brand page 104 allowsthe entity to provide information about itself or its products and/orservices to social networking system users to promote a relationshipbetween the entity and social networking system users.

For purposes of illustration, the brand page 104 in FIG. 1 is associatedwith a sporting goods supplier, with the first content item 140describing tennis racquets stocked by the sporting goods supplier andthe second content item 144 describing running shoes sold by thesporting goods supplier. The first content item 140 is associated with afirst keyword 116 and the second content item 144 is associated with asecond keyword 120. Keywords associated with a content item describecharacteristics of the content item, such as the subject matter of thecontent item, a product associated with the content item, an entityassociated with the content item, an author of the content item or othersuitable characteristic associated with a content item. In oneembodiment, one or more of the keywords associated with a content itemmay be targeting criteria. Targeting criteria define one or morecharacteristics of a social networking system user to whom the entitydesires to present a content item. For example, targeting criteriaidentifies one or more interests included a user profile (e.g.,demographic information, affiliations with groups of the socialnetworking system or other characteristics), as well as characteristicsinferred from user actions taken on or off the social networking system.Additional examples of targeting criteria include a location, an action,an event, a type of connection to a user or entity, an entity, a user,an employer, an educational institution, an affinity or other suitableinformation.

In FIG. 1, the first keyword 116 identifies a characteristic of “tennis”for the first content item 140 while the second keyword 120 identifies acharacteristic of “running” For the second content item 144. When a useraccesses the brand page 104, information associated with the user andthe keywords associated with content items included on the brand pageare used to select content items presented to the user by the brand page104. If a keyword is targeting criteria, information in a user profileis compared to the keyword to determine whether the user satisfies thetargeting criteria. For example, a user is determined to have thecharacteristic identified by the first keyword 120 if a user profileincludes “tennis” as an interest. While FIG. 1 shows a single keywordassociated with different content items, in other embodiments, anynumber of keywords may be associated with content items. As anotherexample, the affinities of a user for keywords are calculated, andcontent items associated with keywords with which the user has thehighest affinity or at least a threshold affinity are selected forinclusion on the brand page 104. In one embodiment, the keywords 116,120 are defined by the entity, which also associates the keywords 116,120 with one or more content items 140, 144. As shown in FIG. 1,different content items 140, 144 posted to the brand page 104 may beassociated with different keywords 116, 120.

In conventional social networking systems, users connected to a brandpage 104 are presented with each content item 140, 144 posted to a brandpage 140. For example, a conventional brand page 104 sends the firstcontent item 140 and the second content item 144 to a user. So, a userconnected to the brand page 104 with no interest in running would bepresented the running-focused second content item 144 as well as othercontent items from the brand page 104. Because different users connectedto the brand page 104 have different interests, this may result in auser manually sifting through content items from the brand page 104 toidentify content items of interest to the user.

By associating keywords 116, 120 with content items 140, 144, an entityimproves interaction between social networking system users and thebrand page 104. Keywords 116, 120 allows the entity to associate contentitems with one or more characteristics of users to whom the entitydesires a content item to be presented or to associated content itemswith characteristics with which a user may have an affinity. In oneembodiment, keywords 116, 120 identify information in a user profile ofthe social networking system identifying a characteristic of a user thatthe entity desires to receive a content item. For example, keywords 116,120 associated with a content item 140, 144 allows an entity to direct acontent item 140, 144 to users having one or more characteristicsspecified by the keywords 116, 120. Alternatively, keywords 116, 120identify topics or entities with which a user may have an affinity orpreference. Hence, the keywords 116, 120 allow an entity to bettercustomize content from a brand page 104 to social networking systemusers.

FIG. 1 illustrates use of keywords 116, 120 to customize content itemsprovided by a brand page 104 to social networking system users. In FIG.1, a first user 122 and a second user 126 are connected to the brandpage 104. The social networking system 100 also includes a first userprofile 124 for the first user 122 and a second user profile 128 for thesecond user 126. FIG. 1 shows the first user profile 124 having a storedinterest of “tennis” and the second user profile 128 having a storedinterest of “running” However, the user profiles 124, 128 may alsoinclude additional information about the first and second users 122,126.

In FIG. 1, the social networking system 100 includes a content selector170, which receives the keywords 116, 120 from the brand page 104 andretrieves data from the first user profile 124 and from the second userprofile 124 to select content items for presentation to the first user122 and to the second user 126 via the brand page 104. The contentselector 170 compares user profile information for users connected tothe brand page 104 to the keywords 116, 120. In one embodiment, thecontent selector 170 also receives a content identifier from the brandpage 104 identifying the content item associated with keywords 116, 120.The content selector 170 then delivers a content item to users connectedto the brand page 104 that have user profile information matching one ormore keywords or that have at least a threshold affinity for a keyword.In the example of FIG. 1, the content selector 170 delivers the firstcontent item 140 to the first user 122, because the first user profile124 identifies “tennis” as an interest of the first user 122, matchingthe first keyword 116. Similarly, the content selector 170 delivers thesecond content item 144 to the second user 126, as the second userprofile 128 identifies “running” as a interest of the second user 126,which matches the second keyword 120.

The example of FIG. 1 also illustrates customization of contentdisplayed to the first user 122 and to the second user 126. For purposesof illustration, FIG. 1 shows a first news feed 132 delivered to thefirst user 122 and a second news feed delivered to the second user 126.However, in various embodiments content may be delivered to the firstuser 122 and to the second user 126 in a variety of ways, such as viamessages to the users 122, 126, modification of the brand page 104appearance when accessed by the users 122, 126 or any other suitabledistribution mechanism.

In FIG. 1, the first user 122 has an interest in “tennis,” which matchesthe first keyword 116. Hence, the first content item 140 is included inthe first news feed 132 in addition to additional stories 148, which maydescribe actions taken by other social networking users connected to thefirst user 122. As shown in FIG. 1, the first news feed 132 does notinclude the second content item 120 because the first user 122 does nothave an interest in “running,” as specified by the second keyword 120.In other embodiments, the first news feed 132 may also include thesecond content item 120 in a less-prominent location than the firstcontent item 140. For example, the first content item 140 is positionedat the top of the first news feed 132 or is otherwise visuallydistinguished from the second content item 144.

Similarly, the second news feed 136 in FIG. 1 includes the secondcontent item 144 because the second user 126 has an interest in“running,” as specified by the second keyword 120. The second news feed136 also includes additional stories 152 describing actions of otherusers connected to the second user 126. In various embodiments, thesecond news feed 126 may visually distinguish the second content item144 from the additional stories 152.

Hence, FIG. 1 shows use of keywords 116, 120 to customize the contentitems from a brand page 104 appearing in news feeds for different users.In other embodiments, the targeting criteria 116, 120 allow additionaltypes of customization, such as customizing the appearance of the brandpage 104 when accessed by different users 122, 126 or customizingmessages about content sent from the brand page 104 to different users122, 126.

System Architecture

FIG. 2 is a high level block diagram illustrating a system environment200 for a social networking system 100. The system environment 200comprises one or more client devices 210, a network 220, one or morethird-party websites 230 and the social networking system 100. Inalternative configurations, different and/or additional components maybe included in the system environment 200. The embodiments describedherein can be adapted to online systems that are not social networkingsystems.

The client devices 210 comprise one or more computing devices capable ofreceiving user input as well as transmitting and/or receiving data viathe network 220. In one embodiment, a client device 210 is aconventional computer system, such as a desktop or laptop computer. Inanother embodiment, a client device 210 may be a device having computerfunctionality, such as a personal digital assistant (PDA), mobiletelephone, smart-phone or similar device. A client device 210 isconfigured to communicate via the network 220. In one embodiment, aclient device 210 executes an application allowing a user of the clientdevice 210 to interact with the social networking system 100. Forexample, a client device 210 executes a browser application to enableinteraction between the client device 210 and the social networkingsystem 100 via the network 220. In another embodiment, a client device210 interacts with the social networking system 100 through anapplication programming interface (API) that runs on the nativeoperating system of the client device 210, such as IOS® or ANDROID™.

The client devices 210 are configured to communicate via the network220, which may comprise any combination of local area and/or wide areanetworks, using both wired and wireless communication systems. In oneembodiment, the network 220 uses standard communications technologiesand/or protocols. Thus, the network 220 may include links usingtechnologies such as Ethernet, 802.11, worldwide interoperability formicrowave access (WiMAX), 3G, 4G, CDMA, digital subscriber line (DSL),etc. Similarly, the networking protocols used on the network 220 mayinclude multiprotocol label switching (MPLS), transmission controlprotocol/Internet protocol (TCP/IP), User Datagram Protocol (UDP),hypertext transport protocol (HTTP), simple mail transfer protocol(SMTP) and file transfer protocol (FTP). Data exchanged over the network220 may be represented using technologies and/or formats includinghypertext markup language (HTML) or extensible markup language (XML). Inaddition, all or some of links can be encrypted using conventionalencryption technologies such as secure sockets layer (SSL), transportlayer security (TLS), and Internet Protocol security (IPsec). The thirdparty website 230 may be coupled to the network 220 for communicatingwith the social networking system 100, which is further described belowin conjunction with FIG. 3.

FIG. 3 is an example block diagram of one embodiment of a systemarchitecture of the social networking system 100. The social networkingsystem 100 includes a user profile store 305, a content store 310, anaction logger 315, an action log 320, a content selector 170, a newsfeedmanager 325, an edge store 330, a display generator 335, and a webserver 340. In other embodiments, the social networking system 100 mayinclude additional, fewer, or different modules for variousapplications. Conventional components such as network interfaces,security functions, load balancers, failover servers, management andnetwork operations consoles, and the like are not shown so as to notobscure the details of the system architecture.

Each user of the social networking system 100 is associated with a userprofile, which is stored in the user profile store 305. A user profileincludes declarative information about the user that was explicitlyshared by the user, and may also include profile information inferred bythe social networking system 100. In one embodiment, a user profileincludes multiple data fields, each data field describing one or moreattributes of the corresponding user of the social networking system100. The user profile information stored in user profile store 305describes the users of the social networking system 100, includingbiographic, demographic, and other types of descriptive information,such as work experience, educational history, gender, hobbies orpreferences, location and the like. A user profile may also store otherinformation provided by the user, for example, images or videos. Incertain embodiments, images of users may be tagged with identificationinformation of users of the social networking system 100 displayed in animage. A user profile in the user profile store 305 may also maintainreferences to actions by the corresponding user performed on contentitems in the content store 310 and stored in the action log 320.

While user profiles in the user profile store 305 are frequentlyassociated with individuals, allowing people to interact with each othervia the social networking system 100, user profiles may also be storedfor entities such as businesses or organizations. This allows an entityto establish a presence on the social networking system 100 forconnecting and exchanging content with other social networking systemusers. The entity may post information about itself, about its productsor provide other information to users of the social networking systemusing a brand page associated with the entity's user profile. Otherusers of the social networking system may connect to the brand page toreceive information posted to the brand page or to receive informationfrom the brand page. A user profile associated with the brand page mayinclude information about the entity itself, providing users withbackground or informational data about the entity.

Content store 310 stores content items associated with a user profile,such as images, videos and audio files. Content items from the contentstore 310 may be displayed when a profile page for a user is viewed,when a brand page is viewed or when other content is viewed. Forexample, displayed content items may show images or video associatedwith a user profile or show text describing a user's status. Thesecontent items may be presented to the user in a variety of communicationchannels. Examples of communication channels include the brand page, anews feed including content items from users or entities, e-mails, textmessaging, notifications sent by the social networking system 100, apush notification channel sending content items to devices associatedwith a user, or other suitable communication channels.

Additionally, other content items may facilitate user engagement byencouraging a user to expand his connections to other users, to invitenew users to the system or to increase interaction with the socialnetworking system 100 by displaying content related to users, objects,activities, or functionalities of the social networking system 100.Examples of social networking content items include suggestedconnections or suggestions to perform other actions, media provided to,or maintained by, the social networking system 100 (e.g., pictures orvideos), status messages or links posted by users to the socialnetworking system, invitations, events, items in a user's wish-list,groups, pages (e.g., representing an organization or commercial entity),deals, coupons, and any other content provided by or accessible via thesocial networking system.

The content store 310 also includes one or more brand pages associatedwith user profiles of entities. A brand page comprises contentassociated with the entity and instructions for presenting the contentto a social networking system user. For example, a brand page identifiescontent associated with the entity's user profile as well as informationdescribing how to present the content to users viewing the brand page.The content item store 310 may also store one or more keywordsassociated with each content item in the content store 310. The keywordsmay be targeting criteria identifying one or more characteristics of auser to whom a content item is to be delivered. Alternatively, thekeywords may identify topics or characteristics associated with content,allowing determination of user's affinity for one or more of thekeywords to represent the likelihood of the user having an interest inthe content.

The action logger 315 receives communications about user actions onand/or off the social networking system 100, populating the action log320 with information about user actions. Such actions may include, forexample, adding a connection to another user, sending a message toanother user, uploading an image, reading a message from another user,viewing content associated with another user, attending an event postedby another user, among others. In some embodiments, the action logger315 identifies interaction between a social networking system user and abrand page within the social networking system 100, which communicatestargeting criteria associated with content on the brand page to thecontent selector 170 to customize content presented via a brand page. Inaddition, a number of actions described in connection with other objectsare directed at particular users, so these actions are associated withthose users as well. These actions are stored in the action log 320.

The action log 320 may be used by the social networking system 100 totrack user actions on the social networking system 100, as well asexternal website that communicate information to the social networkingsystem 100. Users may interact with various objects on the socialnetworking system 100, including commenting on posts, sharing links, andchecking-in to physical locations via a mobile device, accessing contentitems in a sequence or other interactions. Information describing theseactions is stored in the action log 320. Additional examples ofinteractions with objects on the social networking system 100 includedin the action log 320 include commenting on a photo album,communications between users, becoming a fan of a musician, adding anevent to a calendar, joining a groups, becoming a fan of a brand page,creating an event, authorizing an application, using an application andengaging in a transaction. Additionally, the action log 320 records auser's interactions with advertisements on the social networking system100 as well as other applications operating on the social networkingsystem 100. In some embodiments, data from the action log 320 is used toinfer interests or preferences of the user, augmenting the interestsincluded in the user profile and allowing a more complete understandingof user preferences.

The action log 320 may also store user actions taken on externalwebsites. For example, an e-commerce website that primarily sellssporting equipment at bargain prices may recognize a user of a socialnetworking system 100 through social plug-ins that enable the e-commercewebsite to identify the user of the social networking system 100.Because users of the social networking system 100 are uniquelyidentifiable, e-commerce websites, such as this sporting equipmentretailer, may use the information about these users as they visit theirwebsites. The action log 320 records data about these users, includingwebpage viewing histories, advertisements that were engaged, purchasesmade, and other patterns from shopping and buying.

A news feed manager 325 selectively provides content to users of asocial networking system 100 and records the consumption of content byusers. In one embodiment, the news feed manager 325 generates storiesfor a user describing actions taken by other users of the socialnetworking system 100 to whom the user is connected. In one example, thenewsfeed generated by the news feed manager 325 for a user includescomments made by other users to whom the user is connected. In anotherexample, the newsfeed generated includes content posted to the socialnetwork system 240 by other users of the social networking system towhom the user is connected or other actions taken by other users to whomthe user is connected. New news feed stories generated for a user by thenews feed manager may be ranked and stored by the social networkingsystem 100. The news feed manager 325 may communicate with clientdevices 210 through the network 220 to provide content to users of thesocial networking system 100.

In one embodiment, a news feed manager 325 may provide content through asocial plug-in, such as an iframe, to a third party website 230 toprovide content posted on the social networking system 100 about anentity associated with the third party website 230. As an example, abusiness entity creating a brand page on the social networking system100 may desire to publish content items posted on the brand page's newsfeed in the social networking system 100 to a third party website 230via a social plug-in installed on the third party website 230. Hence,content items posted to a brand page may be communicated to usersconnected to the brand page using a variety of techniques. The contentitems may be included in a news feed presented to the user within adomain of the social networking system or within a different domain,such as a domain associated with the third party website 230. Inaddition, the news feed manager 325 may distribute content itemsassociated with a brand page to users via a push channel communicatingthe content items to an application operating on one or more clientdevices 210.

In one embodiment, an edge store 330 stores the information describingconnections between users and other objects on the social networkingsystem 100 in edge objects. Some edges may be defined by users, allowingusers to specify their relationships with other users. For example,users may generate edges with other users that parallel the users'real-life relationships, such as friends, co-workers, partners, and soforth. Other edges are generated when users interact with objects in thesocial networking system 100, such as expressing interest in a page onthe social networking system, sharing a link with other users of thesocial networking system, and commenting on posts made by other users ofthe social networking system.

The edge store 330 stores edge objects that include information aboutthe edge, such as affinity scores for objects, interests, and otherusers. Affinity scores, or affinities, may be computed by the socialnetworking system 100 over time to approximate a user's affinity for anobject, interest, and other users in the social networking system 100based on the actions performed by the user. Examples of actions used tocalculate a user's affinity for another user, brand page or keywordinclude: the user commenting on a photo associated with a keyword oranother user, the user expressing a preference for content on a brandpage or on a user profile, the user posting content to a brand page orto a user profile, the frequency of interaction between the user and thebrand page or with content associated with a keyword, the user sharingcontent associated with a keyword or another user, the user subscribingto content associated with a user or with a keyword, or any othersuitable action. Calculation of affinity scores is further described inU.S. patent application Ser. No. 12/978,265, filed Dec. 23, 2010, whichis hereby incorporated by reference in its entirety, describes varioussystems for predicting a user's affinity for content in a socialnetworking system. Multiple interactions between a user and a specificobject may be stored in one edge object in the edge store 330, in oneembodiment. In some embodiments, connections between users may be storedin the user profile store 310, or the user profile store 310 may accessthe edge store 330 to determine connections between users.

The web server 340 links the social networking system 100 via thenetwork 220 to the one or more client devices 210, as well as to the oneor more third party websites 230. The web server 340 serves web pages,as well as other web-related content, such as Java, Flash, XML and soforth. The web server 340 may provide the functionality of receiving androuting messages between the social networking system 100 and the clientdevice 210, for example, instant messages, queued messages (e.g.,email), text and SMS (short message service) messages, or messages sentusing any other suitable messaging technique. A user may send a requestto the web server 340 to upload information, for example, images orvideos that are stored in the content store 310. Additionally, the webserver 340 may provide API functionality to send data directly to nativeclient device operating systems, such as iOS®, ANDROID™, webOS® or RIM.

The content selector 170 identifies content items from the content store310 for presentation to social networking system users based on keywordsassociated with content items and information stored in user profiles.In one embodiment, the content selector 170 selects content posted to abrand page that is delivered to a user by determining whether the userhas a characteristic specified by a keyword. For example, the contentselector 170 compares an interest identified by a user profile withtargeting criteria associated with the content. Alternatively, thecontent selector 170 selects content posted to a brand page forpresentation to the user based on the user's affinity for keywordsassociated with the content.

In one embodiment, the content selector 170 communicates with thecontent store 310, the user profile store 305 and/or the action log 320to identify content from a brand page for delivery to a socialnetworking system user responsive to the user having information in auser profile matching, or otherwise associated with, a keywordassociated with the content. As an example, the content selector 170identifies one or more interests of a user connected to a brand pagefrom a user profile associated with the user. In some embodiments, thecontent selector 170 may identify a user's interests based oninteractions between the user and the brand page retrieved from theaction log 320; this allows the content selector 170 to used brand-pagespecific interactions to ascertain a user's interest. The contentselector 170 may communicate with the user profile store 305 to modifythe user's profile to include an interest identified by the contentselector 170 from user interaction with the brand page. For example,interactions between the user and content on the brand page associatedwith a keyword, or including a keyword, may cause the content selector170 to determine that the user has an interest in the keyword and updatethe user profile store 305 accordingly.

Upon determining the user's interests, the content selector 170determines whether one or more of the interests match one or morekeywords associated with content items posted to the brand page. Contentitems associated with keywords, such as targeting criteria, which matchthe user's interests are then delivered to the user by the contentselector 170. Hence, the content selector 170 uses data from the userprofile stores 305 and/or from the action log 320 to determine whether auser connected to a brand page has at least one characteristic specifiedby keywords associated with content posted to the brand page. Forexample, content associated with a keyword specifying an action, alocation, an event, an interest, a connection or any other suitablecharacteristic that is matched by a characteristic of a user is selectedfor presentation to the user. This allows customization of contentdelivered from the brand page to connected users to users based oncharacteristics of the users. Examples of content delivered to the userinclude promotional information provided by the entity describingproducts and services, product reviews, images or posts from other usersdescribing interaction with the entity or other social objectsdescribing the entity and/or products or services offered by the entity.

In other embodiments, the content selector 170 communicates with theedge store 330 to determine a user's affinities for keywords associatedwith content posted to the brand page. The content selector 170identifies content items posted to the brand page associated withkeywords for which the user has the highest affinities or for which theuser has at least a threshold affinity. To personalize the user'sinteraction with the brand page, the content items content posted to thebrand page presented to the user, content items selected based on theuser's affinities are presented to the user through the brand page, newsfeed stories, e-mails, text messages, or using any other suitablecommunication channel. Presenting content items posted to the brand pagebased on the user's affinities for the brand page increases thelikelihood that the user will be interested in viewing the presentedcontent items, increasing the likelihood of additional user interactionswith the brand page.

The display generator 335 determines when a user of the socialnetworking system 100 has requested that information be displayed and,in cooperation with the content selector 170, displays contentcustomized to the user requesting the content. For example, a user maynavigate to a brand page within the social networking system 100, andthe display generator 335 modifies appearance of the brand page based ondata from the content selector 170. In one embodiment, the displaygenerator 335 retrieves content identified by the content selector 170from the content store 310 and displays the retrieved content to providethe user with a page experience customized based on the user's profileor interests. For example, content items displayed when a user views thebrand page are modified so that content items associated with keywordsthat the user matches or associated with keywords in which the user hasa threshold affinity are more prominently displayed. The displaygenerator 335 may provide a webpage or some other suitable displayformat to present content to the user via a client device 210. Thedisplay generator 355 may notify the content item selector 170 when thedisplay has been generated in response to a request from the user.

Selection of Content Items to Provide to Social Networking System Users

FIG. 4 illustrates an interaction diagram of a method 400 for selectingcontent associated with a brand page for presentation to a socialnetworking system user. In one embodiment, the social networking system100 receives 405 content for posting to a brand page via the web server340. For example, the social networking system 100 receives articles,ads, videos, audio files or other content from an entity for posting tothe brand page. In addition to the content, the web server 340 receives405 one or more keywords associated with the content. The keywordsdescribe the content and/or describe one or more characteristics of asocial networking system user to whom the content is to be presented.The content received by the web server 340 is communicated 410 to thecontent store 310, where it is stored. In one embodiment, the receivedkeywords are communicated 415 to the content selector 170.Alternatively, the keywords may be communicated to the content store310, and the content selector 170 subsequently retrieves the keywordsfrom the content store 310.

To access the brand page, or to access content associated with the brandpage, a social networking system user transmits 420 a request to accessthe brand page from a client device 210 to the web server 340 of thesocial networking system 100. The request includes an identifier of thesocial networking system user, which the web server 340 uses to request425 the user profile associated with the social networking system userfrom the user profile store 305. After being identified, the userprofile is communicated 430 from the user profile store 305 to thecontent selector 170. Additional information associated with the user,such as actions from the action log 320 and/or edges from the edge store330 may be communicated to the content selector 170.

Based on the keywords associated with the content posted to the brandpage and information from the user profile, the content selector 170selects 435 content posted to the brand page for presentation to theuser. The keywords may identify criteria such as interests, actions,locations, connections, connection types, events, groups or otherinformation and the content selector 170 compares information from theuser profile or otherwise associated with the user to the keywords.Content posted to the brand page and associated with one or morekeywords that match information in the user profile is selected 435 forpresentation to the user.

Alternatively, the keywords identify characteristics of the content,allowing an entity providing the content to associate topics, products,events, brands, people, entities or other information with the content.The content selector 170 may retrieve, from the edge store 330, theuser's affinities for one or more keywords associated with contentposted to the brand page and uses the affinities to select 435 contentposted to the brand page for presentation to the user. The user'saffinity for a keyword provides an indication of the user's likelihoodof being interested in content associated with the keyword; accordingly,selecting 435 content based on the user's affinities allows the contentselector 170 to increase the likelihood of the user having an interestin the selected content. In one embodiment, the content selector 170selects 435 content associated with keywords with which the user has atleast a threshold affinity. Alternatively, the content selector 170selects 435 content associated with keywords with which the user has thehighest affinities relative to affinities for other keywords.

The content selector 170 identifies 440 the selected content posted tothe content store 310. For example, the content selector 170 retrievescontent corresponding to selected content identifiers from the contentstore 310. The selected content posted to the brand page is communicated445 from the content store 310 to the web server 340, which presents 450the selected content to the client device 210 associated with the users.Alternatively, the content selector 170 communicates content identifiersassociated with the selected content posted to the brand page to the webserver 340, which retrieves content corresponding to the contentidentifiers from the content store 310. The retrieved content is thenpresented 450 to the client device 210.

The selected content posted to the brand page may be presented 440 tothe client device 210 in a variety of ways. For example, the selectedcontent may be displayed to a user by customizing the content includedon a representation of the brand page shown to the user accessing thebrand page. The representation of the brand page may include theselected content and not other content associated with the brand page orthe representation of the brand page may visually distinguish theselected content from other content associated with the brand page. Thispersonalizes the content presented to the user via the brand page,increasing the likelihood that the user interacts with the brand page.Alternatively, one or more stories describing the selected content aresent to the user in a news feed. In another example, a message includingselected content, or describing selected content item, is sent to aclient device 210 associated with the user. The message may betransmitted using any suitable communication channel, such as via a textmessage, via an e-mail, via a social plug-in included on a web page in adomain external to the social networking system 100, via a pushcommunication channel or any other suitable communication technique.

FIG. 5 shows a flow chart of one embodiment of a method 500 forselecting content associated with a brand page for presentation to asocial networking system user. A brand page associated with an entity isstored 505 by a social networking system 100. For example, the brandpage is stored 505 in a content store 310 of the social networkingsystem 100. The social networking system 100 also stores 510 userprofiles for users of the social networking system as well asconnections between the user profiles. One or more of the user profileshave a connection to the brand page. Content for posting to the brandpage and keywords associated with the content is received 515. Asdescribed above, one or more keywords may be targeting criteria definingat least one characteristic of a social networking system user, such asan interest of a social networking system user. Other examples oftargeting criteria include a social networking system user postingcontent about an entity-specified topic or product, indicating apreference for a product or post (i.e., “liking” the product or post),sending a post to another social networking system user or any otherinteraction with the brand page or with content on the brand page. Oneor more keywords may describe characteristics of content, such astopics, events, users, entities or other information about the content.Keywords may be specified by an entity associated with the brand page.

The social networking system 100 receives 520 a request to access thebrand page from a user. For example, a user requests to view the brandpage from a client device 210. The request includes an identifier of thesocial networking system user, is used to identify a user profileassociated with the user that is maintained by the social networkingsystem 100. After being identified, the user profile is communicated 430from the user profile store 305 to the content selector 170. Additionalinformation associated with the user, such as actions from the actionlog 320 and/or edges from the edge store 330 may be communicated to thecontent selector 170.

Based on the keywords associated with the content posted to the brandpage and information from the user profile, content posted to the brandpage is selected 525 for presentation to the user. As described above,keywords may identify criteria such as interests, actions, locations,connections, connection types, events, groups or other information.Accordingly, content associated with keywords matching information inthe user profile, or other information associated with the user, isselected 435 for presentation to the user. Alternatively, keywords mayidentify characteristics of the content, allowing an entity providingthe content to associate topics, products, events, brands, people,entities or other information with the content. Hence, the user'saffinity for various keywords is determined, as further described above,and content is selected based on the user's affinity for one or morekeywords associated with the content. For example, content associatedwith keywords with which the user has at least a threshold affinity isselected 525. Alternatively, content associated with keywords with whichthe user has the highest affinities relative to affinities for otherkeywords is selected 525. The selected content is presented 530 to theuser as described above in conjunction with FIG. 4.

FIGS. 6A-C illustrate examples of modifying a brand page's appearancebased on keywords associated with content posted to the brand page. FIG.6A is an example of a conventionally displayed brand page 604. In oneembodiment, the conventionally displayed brand page 604 includes anentity identifier 608, such as a name, logo, image, video or otherinformation identifying the entity associated with the conventionallydisplayed brand page 604. The conventionally displayed brand page 604includes multiple content items 612, 616, 620. Frequently, the multiplecontent items 612, 616, 620 provide a diverse range of information, withsome of the content items 612, 262, 620 being of little value to asocial networking system user viewing the brand page. In the example ofFIG. 6A, the brand page 604 is associated with a sporting goods supplierand the content items 612, 616, 620 describe various products offered bythe sporting goods supplier. For example, a content item 612 providesreviews of tennis racquets for sale by the sporting goods supplier.Another content item 616 provides instructions for swimming techniqueswhile an additional content item 620 advertises a current sale onrunning shoes by the sporting goods supplier.

Although different social networking system users likely have varyingdegrees of interest in the various sports described by the content items612, 616, 620, a conventionally displayed brand page 604 shows eachcontent item 612, 616, 620 to each viewing user. This may require theuser to sort through several content items 612, 616, 620 to findinteresting content.

FIG. 6B illustrates a brand page 624 customized for a viewing user basedon keywords associated with content items 628, 632. In FIG. 6B, thekeywords associated with content items 628, 632 are targeting criteriaand the brand page 624 is customized to more prominently display contentitems associated with targeting criteria that the viewing usersatisfies. For example, if the viewing user's profile includes aninterest in tennis, content item 628, which is associated with targetingcriteria defining an interest in tennis, is more prominently displayed.For example, the brand page 624 displays content item 628 near the topof the brand page 624, allowing the viewing user to more easily findcontent item 628. Alternatively, the keyword associated with contentitem 628 may identify that content item 628 is related to tennis and theviewing user has at least a threshold affinity for tennis based on theuser's user profile, so the brand page 624 is customized to visuallydistinguish content item 628 from other content items. In FIG. 6B, thebrand page 624 also displays another content item 632 associated withtargeting criteria the viewing user does not meet, but less prominentlydisplays the other content item 632. For example, the other content item632 is displayed lower on the brand page 624, is displayed with reducedinformation or is otherwise distinguished from the content item 628associated with targeting criteria that the user satisfies. In otherembodiments, the other content item 632 may be obscured or not displayedto reduce the quantity of information presented to the viewing user.

FIG. 6C illustrates an additional example brand page 636 customized fora viewing user based on keywords associated with content items. In FIG.6B, the brand page 636 is customized to reduce the display of contentitems associated with keywords that are targeting criteria not satisfiedby a viewing user or associated with keywords identifyingcharacteristics for which the viewing user has less than a thresholdaffinity. For example, the brand page 636 displays a content item 632associated with a targeting criteria specifying an interest in runningwhen a viewing user's profile includes an interest in running Toincrease the viewing user's attention to the content item 632, the brandpage displays an additional content message 644 rather than displaycontent items associated with targeting criteria that the viewing userdoes not match or associated with keywords identifying characteristicsin which the user has less than a threshold affinity. The viewing usermay see the additional content items by accessing the additional contentmessage 644.

In some embodiments, a user profile may include information describinghow a brand page's display is customized. For example, a user profileincludes preference information indicating whether to customize thebrand page as shown in FIG. 6B, FIG. 6C or to customize the band page inanother suitable manner. Thus, customizing appearance of a brand pageallows the brand page to make content more accessible to different usersbased on user characteristics. This customized presentation of contentmay increase user interaction with the brand page, promoting a strongerrelationship between a user and the entity associated with the brandpage.

As described above, an owner or administrator of a brand page can post avariety of content items (such as posted text, a picture or picturealbum, a video, a deal, a coupon, an event or invitation thereto, etc.)to the social networking system. The social networking system thendetermines whether users of the social networking system who haveestablished a connection to the brand page may be presented with certainones of these posted content items. For example, the page owner oradministrator may associated a posted content item with a targetingcriteria, which is matched against a user's profile to determine whetherthe user may be presented with the content item. Alternatively, thesystem may predict an affinity that the user will have for a particularposted content item and then use that affinity to determine whether theuser may be presented with the content item. U.S. patent applicationSer. No. 12/978,265, filed Dec. 23, 2010, which is incorporated byreference in its entirety, describes various systems for predicting auser's affinity for content in a social networking system. Byselectively providing users who have established a connection with abrand page with content items posted in connection with the brand page,the social networking system can personalize its users' experiences suchthat their associations with a brand page is more relevant to each user.

SUMMARY

The foregoing description of the embodiments of the invention has beenpresented for the purpose of illustration; it is not intended to beexhaustive or to limit the invention to the precise forms disclosed.Persons skilled in the relevant art can appreciate that manymodifications and variations are possible in light of the abovedisclosure.

Some portions of this description describe the embodiments of theinvention in terms of algorithms and symbolic representations ofoperations on information. These algorithmic descriptions andrepresentations are commonly used by those skilled in the dataprocessing arts to convey the substance of their work effectively toothers skilled in the art. These operations, while describedfunctionally, computationally, or logically, are understood to beimplemented by computer programs or equivalent electrical circuits,microcode, or the like. Furthermore, it has also proven convenient attimes, to refer to these arrangements of operations as modules, withoutloss of generality. The described operations and their associatedmodules may be embodied in software, firmware, hardware, or anycombinations thereof.

Any of the steps, operations, or processes described herein may beperformed or implemented with one or more hardware or software modules,alone or in combination with other devices. In one embodiment, asoftware module is implemented with a computer program productcomprising a computer-readable medium containing computer program code,which can be executed by a computer processor for performing any or allof the steps, operations, or processes described.

Embodiments of the invention may also relate to an apparatus forperforming the operations herein. This apparatus may be speciallyconstructed for the required purposes, and/or it may comprise ageneral-purpose computing device selectively activated or reconfiguredby a computer program stored in the computer. Such a computer programmay be stored in a non-transitory, tangible computer readable storagemedium, or any type of media suitable for storing electronicinstructions, which may be coupled to a computer system bus.Furthermore, any computing systems referred to in the specification mayinclude a single processor or may be architectures employing multipleprocessor designs for increased computing capability.

Embodiments of the invention may also relate to a product that isproduced by a computing process described herein. Such a product maycomprise information resulting from a computing process, where theinformation is stored on a non-transitory, tangible computer readablestorage medium and may include any embodiment of a computer programproduct or other data combination described herein.

Finally, the language used in the specification has been principallyselected for readability and instructional purposes, and it may not havebeen selected to delineate or circumscribe the inventive subject matter.It is therefore intended that the scope of the invention be limited notby this detailed description, but rather by any claims that issue on anapplication based hereon. Accordingly, the disclosure of the embodimentsof the invention is intended to be illustrative, but not limiting, ofthe scope of the invention, which is set forth in the following claims.

What is claimed is:
 1. A computer-implemented method comprising:storing, in a social networking system, a page associated with anentity; storing one or more user profiles of users of the socialnetworking system and a set of connections among the users, each userprofile including information corresponding to at least one userinterest, the information of each user profile including at least oneaffinity corresponding to the at least one user interest; receiving,from the entity, one or more products of the entity for posting to thepage; receiving, at the social networking system, a request to accessthe page from a viewing user, the viewing user associated with acorresponding user profile connected to the page; selecting, by thesocial networking system, a product from the one or more products postedto the page based on an affinity of the at least one affinity, theaffinity between the at least one user interest and the product; andpresenting the selected product to the viewing user.
 2. The method ofclaim 1, wherein the one or more products received from the entity forposting to the page include an additional product message for accessingone or more additional products.
 3. The method of claim 1, wherein theone or more products received from the entity for posting to the pageinclude information about the entity associated with the page.
 4. Themethod of claim 1, wherein the one or more products received from theentity are associated with one or more keywords describing the one ormore products, the one or more keywords defined by the entity.
 5. Themethod of claim 4, wherein selecting, by the social networking system,the product from the one or more products posted to the page is furtherbased on the one or more keywords associated with the product.
 6. Themethod of claim 5, wherein at least one keyword of the one or morekeywords describing a product comprises targeting criteria defining oneor more characteristics of a user of the social networking systemeligible to be presented with the product.
 7. The method of claim 6,wherein the targeting criteria are selected from a group consisting of:an interest, a location, an event type, a type of connection, anadditional user, an action, an employer, an educational institution, theaffinity between at least one user interest and the product, or anycombination thereof.
 8. The method of claim 5, wherein at least onekeyword of the one or more keywords associated with a product of the oneor more products comprises a characteristic describing the product. 9.The method of claim 1, wherein selecting, by the social networkingsystem, the product from the one or more products posted to the page isfurther based on the information corresponding to the user interest inthe user profile associated with the viewing user.
 10. The method ofclaim 1, wherein presenting the selected product to the viewing usercomprises displaying the selected product to visually distinguish theselected product from additional products.
 11. A computer programproduct comprising a non-transitory computer-readable storage mediumcontaining computer program code for: storing, in a social networkingsystem, a page associated with an entity; storing one or more userprofiles of users of the social networking system and a set ofconnections among the users, each user profile including informationcorresponding to at least one user interest, the information of eachuser profile including at least one affinity corresponding to the atleast one user interest; receiving, from the entity, one or moreproducts of the entity for posting to the page; receiving, at the socialnetworking system, a request to access the page from a viewing user, theviewing user associated with a corresponding user profile connected tothe page; selecting, by the social networking system, a product from theone or more products posted to the page based on an affinity of the atleast one affinity, the affinity between the at least one user interestand the product; and presenting the selected product to the viewinguser.
 12. The computer program product of claim 11, wherein the one ormore products received from the entity for posting to the page includean additional product message for accessing one or more additionalproducts.
 13. The computer program product of claim 11, wherein the oneor more products received from the entity for posting to the pageinclude information about the entity associated with the page.
 14. Thecomputer program product of claim 11, wherein the one or more productsreceived from the entity are associated with one or more keywordsdescribing the one or more products, the one or more keywords defined bythe entity.
 15. The computer program product of claim 14, wherein thecomputer program code for selecting, by the social networking system,the product from the one or more products posted to the page is furtherbased on the one or more keywords associated with the product.
 16. Thecomputer program product of claim 15, wherein at least one keyword ofthe one or more keywords describing a product comprises targetingcriteria defining one or more characteristics of a user of the socialnetworking system eligible to be presented with the product.
 17. Thecomputer program product of claim 16, wherein the targeting criteria areselected from a group consisting of: an interest, a location, an eventtype, a type of connection, an additional user, an action, an employer,an educational institution, the affinity between at least one userinterest and the product, or any combination thereof.
 18. The computerprogram product of claim 15, wherein at least one keyword of the one ormore keywords associated with a product of the one or more productscomprises a characteristic describing the product.
 19. The computerprogram product of claim 11, wherein the computer program code forselecting, by the social networking system, the product from the one ormore products posted to the page is further based on the informationcorresponding to the user interest in the user profile associated withthe viewing user.
 20. The computer program product of claim 11, whereinthe computer program code for presenting the selected product to theviewing user comprises computer program code for displaying the selectedproduct to visually distinguish the selected product from additionalproducts.